:root {
    --bg: #222;
    --wave1: #a0edff;
    --wave2: rgba(40, 187, 255, 0.5);
    --wave3: #2084cc;
  }
  body {
    background: var(--bg);
  }
  .box {
    width: 650px;
    height: 300px;
    border: 1px solid;
    background: linear-gradient(
      270deg,
      rgba(29, 170, 210, 0) 0%,
      rgba(29, 170, 210, 0.1) 13%,
      rgba(29, 170, 210, 0.4) 49%,
      rgba(29, 170, 210, 0.1) 84%,
      rgba(29, 170, 210, 0) 100%
    );
    border-image: linear-gradient(
        270deg,
        rgba(81, 201, 232, 0),
        rgba(56, 187, 222, 0),
        rgba(56, 187, 222, 1),
        rgba(30, 172, 212, 0)
      )
      1 1;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .box-inner {
    width: 200px;
    height: 200px;
    box-shadow: 0 2px 7px 0 #238fdb;
    border-radius: 50%;
    position: relative;
    border: 2px solid transparent;
    background: linear-gradient(#021f40, #021f40);
    background-origin: border-box;
    background-clip: content-box, border-box;
    /* 溢出隐藏 */
    overflow: hidden;
  }
  .inner {
    width: 100%;
    height: 100%;
    position: absolute;
    background: #a0edff;
    /* 添加底部距离 */
    bottom: calc(-128% + var(--per));
  }
  .box-waves {
    position: absolute;
    left: 0;
    bottom: 100%;
    width: 200%;
    stroke: none;
  }
  .box-waves:nth-child(1) {
    fill: var(--wave1);
    transform: translate(-50%, 0);
    z-index: 3;
    /* svg重合有一条线条，将边距设置为负的 */
    margin-bottom: -2px;
    /* 添加动画 */
    animation: wave-move1 1.5s infinite linear;
  }
  .box-waves:nth-child(2) {
    fill: var(--wave2);
    transform: translate(0, 0);
    z-index: 2;
    animation: wave-move2 3s infinite linear;
  }
  .box-waves:nth-child(3) {
    fill: var(--wave3);
    transform: translate(-50%, 0);
    z-index: 1;
    /* 添加动画 */
    animation: wave-move1 3s infinite linear;
  }
  @keyframes wave-move1 {
    100% {
      transform: translate(0, 0);
    }
  }
  @keyframes wave-move2 {
    100% {
      transform: translate(-50%, 0);
    }
  }
  .box-text {
    font-size: 30px;
    font-weight: bold;
    width: 80px;
    text-align: center;
    position: absolute;
    z-index: 100;
    /* margin-left: 20px; */
    color: #d718f5;
  }
  *,
*::before,
*::after {
  box-sizing: border-box;
}

* {
  padding: 0;
  margin : 0;
}

body {
  font-size      : 16px;
  display        : flex;
  align-items    : center;
  justify-content: center;
  background     : #222;
  color          : #fff;
  overflow       : hidden;
  height         : 100vh;
}
